Web2Py একটি MVC (Model-View-Controller) আর্কিটেকচার অনুসরণ করে কাজ করে এবং এর ফোল্ডার স্ট্রাকচার এমনভাবে ডিজাইন করা হয়েছে যাতে ওয়েব অ্যাপ্লিকেশনটির কোড সংগঠিত এবং কার্যকরীভাবে পরিচালিত হয়। Web2Py এর ফোল্ডার স্ট্রাকচার সহজেই বোঝা যায় এবং এটি ডেভেলপারদের জন্য বিভিন্ন ফিচার এবং লজিক আলাদা করে কাজ করার সুবিধা দেয়।
নিচে Web2Py এর ফোল্ডার স্ট্রাকচার এবং প্রতিটি ফোল্ডারের কাজ ব্যাখ্যা করা হলো:
Web2Py এর প্রধান ফোল্ডার স্ট্রাকচার
/your_app_name
/controllers
/models
/views
/static
/logs
/databases
/private
/modules
১. controllers (কন্ট্রোলার)
- ব্যাখ্যা: এই ফোল্ডারে সমস্ত কন্ট্রোলার ফাইল থাকে। কন্ট্রোলার হল অ্যাপ্লিকেশন লজিকের অংশ, যা ইউজারের ইনপুট গ্রহণ করে এবং মডেল থেকে ডেটা এনে ভিউতে পাঠায়।
- কাজ: কন্ট্রোলার ফাইলের মধ্যে ফাংশন থাকে যা ইউজার থেকে HTTP রিকোয়েস্ট গ্রহণ করে এবং প্রয়োজনীয় ডেটা প্রসেস করে ভিউতে পাঠিয়ে দেয়। উদাহরণস্বরূপ,
default.py,admin.pyইত্যাদি কন্ট্রোলার ফাইল থাকে। উদাহরণ:
def index(): return dict(message="Hello, World!")
২. models (মডেল)
- ব্যাখ্যা: মডেল ফোল্ডারে ডেটাবেস এবং অ্যাপ্লিকেশন লজিক সম্পর্কিত কোড থাকে। এটি ডেটা ম্যানিপুলেশন এবং ডাটাবেস থেকে তথ্য আহরণ করার কাজ করে।
- কাজ: মডেল ফাইল ডেটাবেসের সাথে যোগাযোগ করে এবং ডেটা সংরক্ষণ, আপডেট, ডিলিট বা রিট্রিভ করার কাজ করে।
উদাহরণ:
db = DAL('sqlite://storage.sqlite') # SQLite ডাটাবেস সংযোগ db.define_table('person', Field('name'))
৩. views (ভিউ)
- ব্যাখ্যা: ভিউ ফোল্ডারে অ্যাপ্লিকেশনটির ইউজার ইন্টারফেস (UI) বা টেমপ্লেট ফাইল থাকে। ভিউটি অ্যাপ্লিকেশনটির দেখানোর অংশ, যা ইউজারকে তথ্য উপস্থাপন করে।
- কাজ: ভিউ ফাইল HTML বা অন্যান্য ফরম্যাটে থাকে এবং কন্ট্রোলার থেকে পাওয়া ডেটা প্রদর্শন করে। এই ফোল্ডারের মধ্যে
.htmlঅথবা.xmlফাইল থাকে, যা কন্ট্রোলার থেকে পাস করা ডেটা দেখায়। উদাহরণ:
<h2>{{=message}}</h2>
৪. static (স্ট্যাটিক)
- ব্যাখ্যা: স্ট্যাটিক ফোল্ডার ওয়েব অ্যাপ্লিকেশনের সব ধরনের স্ট্যাটিক ফাইল যেমন CSS, JavaScript, ইমেজ ইত্যাদি ধারণ করে।
- কাজ: স্ট্যাটিক ফাইলগুলো অ্যাপ্লিকেশনটির ফ্রন্টএন্ড ডিজাইন এবং কার্যকারিতায় সহায়তা করে। এই ফোল্ডারে
.css,.js,.jpg,.pngইত্যাদি ফাইল থাকতে পারে। - উদাহরণ:
/static/css/styles.css/static/js/scripts.js
৫. logs (লগস)
- ব্যাখ্যা: এই ফোল্ডারে অ্যাপ্লিকেশন সম্পর্কিত লগ ফাইলগুলো রাখা হয়, যেমন ডিবাগ লগ, এরর লগ ইত্যাদি।
- কাজ: এই ফোল্ডারটি ডেভেলপারদের অ্যাপ্লিকেশনের কার্যকারিতা এবং সমস্যাগুলি ট্র্যাক করতে সাহায্য করে। এখানে প্রতিটি রিকোয়েস্ট, এরর এবং সিস্টেম মেসেজ লগ করা হয়।
৬. databases (ডাটাবেস)
- ব্যাখ্যা: এই ফোল্ডারটি ডাটাবেস ফাইলগুলো ধারণ করে। যদি আপনি SQLite ব্যবহার করেন, তাহলে ডাটাবেস ফাইল এই ফোল্ডারে পাওয়া যাবে।
- কাজ: Web2Py সাধারণত SQLite ডাটাবেস ফাইল ব্যবহার করে, তবে যদি আপনি অন্য কোনো ডাটাবেস (যেমন MySQL বা PostgreSQL) ব্যবহার করেন, ডাটাবেসের কনফিগারেশন এখানে থাকে।
৭. private (প্রাইভেট)
- ব্যাখ্যা: এই ফোল্ডারে অ্যাপ্লিকেশনের জন্য সংরক্ষিত বা সুরক্ষিত ফাইলগুলি রাখা হয়। সাধারণত ফাইল আপলোড, সিক্রেট কী, বা অন্য কোনো সুরক্ষিত ডেটা এই ফোল্ডারে থাকে।
- কাজ: এই ফোল্ডারটি নিরাপত্তা এবং অ্যাক্সেস কন্ট্রোলের জন্য ব্যবহৃত হয়। এখানে যেকোনো সিক্রেট বা প্রাইভেট ফাইল রাখা হয়।
৮. modules (মডিউলস)
- ব্যাখ্যা: এই ফোল্ডারে অ্যাপ্লিকেশনের বাইরের কোড বা মডিউল থাকে যা বিভিন্ন কাজের জন্য ব্যবহার করা হয়।
- কাজ: যদি আপনার অ্যাপ্লিকেশনে কোনো এক্সটার্নাল লাইব্রেরি বা ফাংশন ব্যবহার করতে হয়, তবে সেই কোড এখানে রাখা হয়। এটি কোডের পুনঃব্যবহারযোগ্যতা নিশ্চিত করে এবং অ্যাপ্লিকেশনের অন্যান্য অংশের সাথে সহজে সংযোগ স্থাপন করতে সহায়তা করে।
সারাংশ
Web2Py এর ফোল্ডার স্ট্রাকচার খুবই সংগঠিত এবং পরিষ্কার, যেখানে প্রতিটি ফোল্ডার নির্দিষ্ট কাজের জন্য সংরক্ষিত।
- controllers: অ্যাপ্লিকেশন লজিক।
- models: ডেটাবেস এবং মডেল ফাইল।
- views: ইউজার ইন্টারফেস এবং টেমপ্লেট।
- static: স্ট্যাটিক ফাইল (CSS, JS, ইমেজ)।
- logs: লগ ফাইল (এরর, ডিবাগিং)।
- databases: ডাটাবেস ফাইল।
- private: সুরক্ষিত ফাইল।
- modules: এক্সটার্নাল কোড বা লাইব্রেরি।
এই ফোল্ডার স্ট্রাকচারটি Web2Py ব্যবহারকারীকে সিস্টেমের বিভিন্ন অংশ পরিষ্কারভাবে আলাদা করার সুবিধা দেয়, যা অ্যাপ্লিকেশন ডেভেলপমেন্টকে আরও সংগঠিত এবং কার্যকরী করে।
Read more